﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Juego_Lp.World {
    class GestorDeMapas{
        /*ATRIBUTOS*/
        Map mapa;
        Game juego;

        /*CONSTRUCTOR*/
        public GestorDeMapas(){
	        mapa=new Map();
        }
        public GestorDeMapas(Map mapa, Game juego) {
            this.mapa = mapa;
            this.juego = juego;
        }

        /*OTROS*/
        public void iniciar() {
            crearCeldas(mapa, "mapa.txt");
            //imprimirCeldas();
        }

        private void crearCeldas(Map mapa, string p) {
            throw new NotImplementedException();
        }
        //public void imprimirCeldas() {
        //    for (int j = 0; j < mapa.getLimiteY(); j++) {
        //        for (int i = 0; i < mapa.getLimiteX(); i++) {
        //            //if (mapa.getCeldas(i, j).getImagen()==) System.out.print("no hay imagen, no hay nada");
        //            Console.Write(mapa.getTablero(i, j).getTipoElemento());
        //        }
        //        Console.WriteLine();
        //    }
        //}
                
        /*VALIDADORES*/
        //Nos dice si existe un(Batallon,Aldea,Arma) al costado de cierta posicion x,y.
        public bool monstruoAmiCostado(int x,int y){
            // esto validara cuando un monstruo esta justo delante de un soldado, de manera que empezaran a combatir cuerpo a cuerpo sinq ue avanze
	        if(this.mapa.get(x+1, y).getTipoElemento()=='M') return true;
	        return false;
        }
        public bool personajeAmiAlrededor(int x, int y) {
            // esto validara que hay un personaje a mi alrededor en cualquier de los 4 sentidos(arriba,abajo,izquierda,derecha),
            //de modo que restringira que no se pueda realizar movimiento requerido.
            if (this.mapa.get(x, y + 1).getTipoElemento() != ' ') return true; // hay alguien abajo cuando quiero bajar
            if (this.mapa.get(x, y - 1).getTipoElemento() != ' ') return true; // hay alguien arriba cuando quiero subir 
            if (this.mapa.get(x + 1, y).getTipoElemento() != ' ') return true; // hay alguien adelante cuando quiero avanzar
            if (this.mapa.get(x - 1, y).getTipoElemento() != ' ') return true; // hay alguien atras cuando quiero retroceder 
            return false; 
        }
     
    }
}

